#define _CRT_SECURE_NO_WARNINGS 1

/*蛇形矩阵是由1开始的自然数依次排列成的一个上三角矩阵（参看 输出样例）。要求输入整数n，构造并输出蛇形矩阵。

输入格式 :
首先输入一个正整数T，表示测试数据的组数，然后是T组测试数据。每组测试输入一个正整数N（N不大于100)。

输出格式 :
对于每组测试，输出一个共有N行的蛇形矩阵。每行的每两个数字之间留一个空格。

输入样例 :
在这里给出一组输入。例如：

1
5
输出样例 :
	1 3 6 10 15
	2 5 9 14
	4 8 13
	7 12
	11
	*/



#include<stdio.h>

void print(int arr[100][100], int sz)
{
	int i = 0;
	int j = 0;
	for (i = 0; i < sz; i++)
	{
		for (j = 0; j < sz - i; j++)
		{
			if (j == sz - i - 1)
			{
				printf("%d", arr[i][j]);
			}
			else
			{
				printf("%d ", arr[i][j]);
			}
		}
		printf("\n");
	}

}

int main()
{
	int arr[100][100] = { 1 };
	int n = 0;
	int m = 0;
	scanf("%d", &m);
	int i = 0;
	int j = 0;
	int k = 0;
	for (k = 0; k < m; k++)
	{
		i = 0;
		j = 0;
		scanf("%d", &n);
		arr[0][0] = 1;
		if (i == 0)
		{
			while (j != n - 1)
			{
				if (i == 0 && j == 0)
				{
					i++;
					arr[i][j] = arr[i - 1][j] + 1;
				}
<<<<<<< HEAD
				/*if (i != n && j != n)
				{
					i--;
					j++;
				}*/
				i--;
				j++;
=======
				
					i--;
					j++;
>>>>>>> 301192d591b34f5beeaf2e343fb6617c3a8464e5
				arr[i][j] = arr[i + 1][j - 1] + 1;
				if (i == 0 && j != n - 1)
				{
					arr[j + 1][0] = arr[i][j] + 1;
					i = j + 1;
					j = 0;
				}

			}
		}
		print(arr, n);
	}


	return 0;
}

